typedef uint8_t			sim_byte;
typedef uint16_t		sim_hword;
typedef uint32_t		sim_word;

#if __LP64__ == 1
	#define MIPS64 1
	
	typedef uint64_t	sim_cycle;
	typedef uint64_t	sim_dword;
	typedef sim_dword	sim_addr;
	typedef sim_dword	sim_size;

#else /* !__LP64__ */
	#define MIPS32 1

	typedef uint32_t	sim_cycle;
	typedef sim_word	sim_addr;
	typedef sim_word	sim_size;

#endif

typedef sim_size		sim_reg;

typedef struct tlb				TLB;
typedef struct cache			CACHE;
typedef struct mmu_contect		MMU;
typedef struct sim_context		HOST;
typedef struct register_file	REGS;

typedef int				sim_priv;
#define PRIV_KERNEL		0
#define PRIV_SUPER		1
#define PRIV_USER		2
#define PRIV_DEFAULT	4
#define PRIV_INTERNAL	8

